--[[
描述 ： UIButton控件
作者 ： 付大志
时间 ： 13/08/08
注意：此类不作为单独控件使用；
]]
UIGridCell = Class(MLView,'UIGridCell');

UIGridCell.text   				= nil;     	-- 显示文本
UIGridCell.fontHeight    			= nil;   	-- 字体高度
UIGridCell.fontColor    			= nil;    	-- 字体背景颜色
UIGridCell.fontFocusColor 		= nil;  	-- 字体聚集颜色
UIGridCell.bgColor    			= nil;  	-- 背景图片
UIGridCell.focusColor 			= nil;  	-- 聚集图片
UIGridCell.LOSE_FOCUS_INTERVAL	= AW(15);-- 失去焦点间隔 闸值
UIGridCell.mWidth 				= nil;     	-- 宽度
UIGridCell.mHeight 				= nil;     	-- 高度
UIGridCell.mIsFocus  				= nil;   	-- 是否聚焦
UIGridCell.mDownX    				= nil;   	-- 触摸屏x坐标
UIGridCell.mDownY    				= nil;   	-- 触摸屏Y坐标
UIGridCell.index            = 0;
UIGridCell.grid            = nil;
--[[
功能   ： 初始化 UIButton 控件
参数   ： w     		宽度
	     h     		高度
	     viewCtrl	所在Ctrl
	     id			控件id
返回   ： button 实例
]]

function UIGridCell:init(width, height,imgWidth, viewCtrl, id)

  width  = width or UITheme.BUTTON_WIDTH;
  height = height or UITheme.BUTTON_HEIGHT;

  -- 初始化
  -- local self = UIButton:initView(width, height, viewCtrl, id);
  self:initView(width, height, viewCtrl, id);
  --print('--------------------點cc擊-btn----------',self);
  self.mWidth = width;
  self.mHeight = height;
  self.fontHeight = AW(UITheme.BUTTON_FONT_HEIGHT);
  self.fontColor = UITheme.BUTTON_FONT_COLOR;
  self.fontFocusColor = UITheme.BUTTON_FONT_FOCUS_COLOR;

  self.bgColor =  0xffffff;
  self.focusColor =  0xffffff;
  self.icon = nil;
  self.imgWidth = imgWidth;
  self.text = nil;
  self.onClick= function()
    if self.grid ~= nil then
      if self.grid.onClick ~= nil then
        self.grid.onClick(self.index);
      end
    end
  end

  self.onPoint = function (evt, x, y)
    -- body
    --print('--------------------點cc擊-btn----------event',evt)
    local interval =  self.LOSE_FOCUS_INTERVAL;

    if evt == MLView.PointDown then
      --print('--------------------點擊-----------', MLView.PointDown);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus= true;
    elseif evt == MLView.PointUp then
      --print('--------------------抬起-----------', MLView.PointUp);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    elseif evt == MLView.PointMove then
      --print('-----------------移動---------', MLView.PointMove);
      if math.abs(x-self.mDownX) > interval or math.abs(y-self.mDownY) > interval then
        self.mIsFocus = false;
      end
    elseif evt == MLView.PointCanCel then
      --print('-----------------离开---------', MLView.PointMove);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    end

    self:draw();
    return 1;  -- 事件不拦截
  end


  return self;
end


--[[
功能   ： 画控件
参数   ： 无
返回   ： 无
]]
function UIGridCell:draw()

  local g = self:getGraphic();
  g:clear();

  local fontColor, bgColor = self.fontColor, self.bgColor;
  -- print('-------self.bgImage', self.bgImage);
  if self.mIsFocus then
    fontColor = self.fontFocusColor;
    bgColor =  self.focusColor or self.bgColor ;
  end

  if bgColor then
    self:setColor(bgColor);
  end

  local iconx, icony = 0,0;

  icony = (self.mHeight - self.imgWidth -self.fontHeight)/2
  iconx = (self.mWidth-self.imgWidth)/2;

  if self.icon then
    g:drawImage(UIImage.imageName(self.icon), iconx, icony, self.imgWidth,self.imgWidth );
  end

  local strw = MLNative.measStringWidth(self.text, self.fontHeight, self.fs);

  local x, y = (self.mWidth-strw)/2, icony +  self.imgWidth + self.fontHeight/2 ;
  if self.text then

    g:drawString(self.text, x, y, fontColor, self.fontHeight, self.fs);

  end

  g:drawRect( 0, 0, self.mWidth, self.mWidth, 0xeeeeee, 1);

end
